package com.cmwa.solution.business.customerEquity.navinfo.entity;
import org.apache.ibatis.type.Alias;

import com.cmwa.solution.base.entity.BaseVo;

/**
 * 估值核算-净值
 * @author ex-lihui
 *
 */
@Alias("navInfoBaseVo")
public class NavInfoBaseVo extends BaseVo  implements Comparable<NavInfoBaseVo>, Cloneable{
	
	private String navBizId;			
	private String fundSname;			//产品名称
	private String outCode;				//产品代码
	private String department;			//所属部门
	private String projectManager;		//项目经理
	protected Integer assessmentDate;	//净值日期
	private String navDate;
	private String nav;					//净值
	private String subPrdCode;			//子产品编码
	private String totalNav;			//累计单位净值
	private String prdNavSrc;			//净值来源（1标准库；0非标准库）
	private String quotient;			//份额
	private String totalValue;			//总净值
	private String totalAsset;			//总资产
	private String batchNum;			//批号
	private String prdType;				//产品类型
	private String rateReturn;			//收益率
	private String accRateReturn;		//累计收益
	private String legal;				//法人行
	private String wfsy;				//产品万份收益
	private String nudistribute;		//当日未分配收益
	private String weekyield;			//七日年化收益率
	
	public NavInfoBaseVo() {
		super();
	}

	public NavInfoBaseVo(String fundSname, String outCode, String department, String projectManager,
			Integer assessmentDate, String nav) {
		super();
		this.fundSname = fundSname;
		this.outCode = outCode;
		this.department = department;
		this.projectManager = projectManager;
		this.assessmentDate = assessmentDate;
		this.nav = nav;
	}

	
	
	public NavInfoBaseVo(String navBizId, String fundSname, String outCode, String department, String projectManager,
			Integer assessmentDate, String navDate, String nav, String subPrdCode, String totalNav, String prdNavSrc,
			String quotient, String totalValue, String totalAsset, String batchNum, String prdType, String rateReturn,
			String accRateReturn, String legal, String wfsy, String nudistribute, String weekyield) {
		super();
		this.navBizId = navBizId;
		this.fundSname = fundSname;
		this.outCode = outCode;
		this.department = department;
		this.projectManager = projectManager;
		this.assessmentDate = assessmentDate;
		this.navDate = navDate;
		this.nav = nav;
		this.subPrdCode = subPrdCode;
		this.totalNav = totalNav;
		this.prdNavSrc = prdNavSrc;
		this.quotient = quotient;
		this.totalValue = totalValue;
		this.totalAsset = totalAsset;
		this.batchNum = batchNum;
		this.prdType = prdType;
		this.rateReturn = rateReturn;
		this.accRateReturn = accRateReturn;
		this.legal = legal;
		this.wfsy = wfsy;
		this.nudistribute = nudistribute;
		this.weekyield = weekyield;
	}

	public String getSubPrdCode() {
		return subPrdCode;
	}

	public void setSubPrdCode(String subPrdCode) {
		this.subPrdCode = subPrdCode;
	}

	public String getNavBizId() {
		return navBizId;
	}

	public void setNavBizId(String navBizId) {
		this.navBizId = navBizId;
	}

	public String getFundSname() {
		return fundSname;
	}

	public void setFundSname(String fundSname) {
		this.fundSname = fundSname;
	}

	public String getOutCode() {
		return outCode;
	}

	public void setOutCode(String outCode) {
		this.outCode = outCode;
	}

	public String getDepartment() {
		return department;
	}

	public void setDepartment(String department) {
		this.department = department;
	}

	public String getProjectManager() {
		return projectManager;
	}

	public void setProjectManager(String projectManager) {
		this.projectManager = projectManager;
	}

	public Integer getAssessmentDate() {
		return assessmentDate;
	}

	public void setAssessmentDate(Integer assessmentDate) {
		this.assessmentDate = assessmentDate;
	}

	public String getNav() {
		return nav;
	}

	public void setNav(String nav) {
		this.nav = nav;
	}

	public String getNavDate() {
		return navDate;
	}

	public void setNavDate(String navDate) {
		this.navDate = navDate;
	}

	public String getTotalNav() {
		return totalNav;
	}

	public void setTotalNav(String totalNav) {
		this.totalNav = totalNav;
	}

	public String getPrdNavSrc() {
		return prdNavSrc;
	}

	public void setPrdNavSrc(String prdNavSrc) {
		this.prdNavSrc = prdNavSrc;
	}

	public String getQuotient() {
		return quotient;
	}

	public void setQuotient(String quotient) {
		this.quotient = quotient;
	}

	public String getTotalValue() {
		return totalValue;
	}

	public void setTotalValue(String totalValue) {
		this.totalValue = totalValue;
	}

	public String getTotalAsset() {
		return totalAsset;
	}

	public void setTotalAsset(String totalAsset) {
		this.totalAsset = totalAsset;
	}

	public String getBatchNum() {
		return batchNum;
	}

	public void setBatchNum(String batchNum) {
		this.batchNum = batchNum;
	}

	public String getPrdType() {
		return prdType;
	}

	public void setPrdType(String prdType) {
		this.prdType = prdType;
	}

	public String getRateReturn() {
		return rateReturn;
	}

	public void setRateReturn(String rateReturn) {
		this.rateReturn = rateReturn;
	}

	public String getAccRateReturn() {
		return accRateReturn;
	}

	public void setAccRateReturn(String accRateReturn) {
		this.accRateReturn = accRateReturn;
	}

	public String getLegal() {
		return legal;
	}

	public void setLegal(String legal) {
		this.legal = legal;
	}

	public String getWfsy() {
		return wfsy;
	}

	public void setWfsy(String wfsy) {
		this.wfsy = wfsy;
	}

	public String getNudistribute() {
		return nudistribute;
	}

	public void setNudistribute(String nudistribute) {
		this.nudistribute = nudistribute;
	}

	public String getWeekyield() {
		return weekyield;
	}

	public void setWeekyield(String weekyield) {
		this.weekyield = weekyield;
	}

	
	@Override
	public String toString() {
		return "NavInfoBaseVo [navBizId=" + navBizId + ", fundSname=" + fundSname + ", outCode=" + outCode
				+ ", department=" + department + ", projectManager=" + projectManager + ", assessmentDate="
				+ assessmentDate + ", navDate=" + navDate + ", nav=" + nav + ", subPrdCode=" + subPrdCode
				+ ", totalNav=" + totalNav + ", prdNavSrc=" + prdNavSrc + ", quotient=" + quotient + ", totalValue="
				+ totalValue + ", totalAsset=" + totalAsset + ", batchNum=" + batchNum + ", prdType=" + prdType
				+ ", rateReturn=" + rateReturn + ", accRateReturn=" + accRateReturn + ", legal=" + legal + ", wfsy="
				+ wfsy + ", nudistribute=" + nudistribute + ", weekyield=" + weekyield + "]";
	}

	@Override
	public int compareTo(NavInfoBaseVo o) {
		int id = 0;
		try {
			if (o != null && o.getAssessmentDate() != null) {
				//id = o.assessmentDate.compareTo(assessmentDate);
				if(this.assessmentDate == o.assessmentDate) {
					id= 0;
				}else if(this.assessmentDate > o.assessmentDate) {
					id= 1;
				}else if(this.assessmentDate < o.assessmentDate) {
					id= -1;
				}
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return id;
	}

}
